package com.wontube.smr.web.client;

import java.util.List;
import java.util.Map;

import com.wontube.client.modle.vo.PagenateInfo;
import com.wontube.smr.client.model.po.Genre;
import com.wontube.smr.client.model.po.TVEpisode;
import com.wontube.smr.client.model.vo.SeasonEpisodes;
import com.wontube.smr.client.model.vo.TVShowItems;
import com.wontube.smr.web.client.model.bo.QueryItemParams;

/**
 * 动漫接口
 * 
 * @author hewc@wondershare.cn
 * 
 */
public interface IAnimeWebHandler {

	/**
	 * 动漫基因
	 * 
	 * @return
	 */
	List<Genre> listAnimeGenres();

	/**
	 * 得到动漫列表
	 * @param params
	 * @param pageInfo
	 * @return
	 */
	TVShowItems listAnimes(QueryItemParams params, PagenateInfo pageInfo);
	
	/**
	 * 根据动漫ID得到动漫详细的季和集
	 */
	List<SeasonEpisodes> listTVEpisodeDetail(String showId);
	
	/**
	 * tv detail home
	 * show -> TVShow
	 * seasons -> List<SeasonEpisodes>
	 * animeGenres -> List<Genre>
	 * @param showId
	 * @return
	 */
	Map<String, Object> collectTVDetails(String showId);
		
	/**
	 * tv episode play home
	 * anime -> TVEpisode
	 * show -> TVShow
	 * seasons -> List<SeasonEpisodes>
	 * animeGenres -> List<Genre>
	 * @param epId
	 * @return
	 */
	Map<String, Object> collectTVPlayDetail(String epId);
	
	/**
	 * 因为数据不多, 尽量一页取完(50)
	 * @param pageInfo
	 * @return
	 */
	TVShowItems listAnimeSimulacasts(PagenateInfo pageInfo);
	
	/**
	 * 因为数据不多, 尽量一页取完(50)
	 * @param pageInfo
	 * @return
	 */
	TVShowItems listRecentAinmes(PagenateInfo pageInfo);
	
	/**
	 * 根据ID得到动漫的详细信息
	 */
	TVEpisode getTVEpisode(String id);
	
	/**
	 * 得到动漫的相关视频
	 */
	TVShowItems selectRelatedAnime(String showId, PagenateInfo pageInfo);
}
